

function MsgLib()
{

	this.init=function(uid)
	{
		if($("#msglib_board_"+uid).length>0)
		{
			return false;
		}
		_createbox(uid);
		_bind();
	}

	var _createbox=function(uid)
	{
		var ms=usr.getallmsg(uid);
		var cmlis='';//普通消息发送者列表
		var syslis='';//通知消息发送者列表

		var frdul='<ul class="msglib_frd"><li class="msglib_list_head">好友会话</li>';
		var grpul='<ul class="msglib_grp"><li class="msglib_list_head">群会话</li>';
		var disul='<ul class="msglib_dis"><li class="msglib_list_head">讨论组会话</li>';


		var cmcnt='';//普通消息内容框
		var syscnt='';//通知消息内容框

		var cml=0;//普通消息个数
		var sysl=0;//通知消息个数

		//根据设置显示第一条还是显示最新一条来判断展示
		var needlength=parseInt(usr.getpro(uid,'setting','showmsgbox_first'))==0?0:ms.length-1;

		if(ms.length>0)
		{
			for(var i=0;i<ms.length;i++)
			{
				var ty=ms[i].type;
				var cn=ms[i].cnt;
				setlast2main(uid,ms[i].type,ms[i].fromid);
				if(ty=='frd'||ty=='grp'||ty=='dis')
				{
					//累计消息数
					cml+=cn.length;
					
					var add=
					'<li class="msglib_list_who'+(needlength==i?' selected':'')+'" senderid="'+ty+'_'+ms[i].fromid+'">'+
					'<div class="header"><div class="headimg"><img src="'+usr.getaother(uid,ms[i].fromid,ty).img+'"/></div></div>'+
					'<div class="cnter"><div class="namer">'+
					'<div class="lasttime">'+(cn[cn.length-1]['time'].split(',')[1].substring(0,5))+'</div>'+
					'<div class="count">'+cn.length+'条</div>'+
					'<div class="fname">'+usr.getaother(uid,ms[i].fromid,ty).name+'('+usr.getaother(uid,ms[i].fromid,ty).account+')</div></div>'+
					'<div class="newst">'+cn[cn.length-1].content+'</div>'+
					'</div></li>';

					if(ty=='frd')
					{
						frdul+=add;
					}
					else if(ty=='grp')
					{
						grpul+=add;
					}
					else if(ty=='dis')
					{
						disul+=add;
					}
					
					if(needlength==i)
					{
						var msgcnt='';
						for (var k=0;k<cn.length;k++)
						{
							msgcnt+=
							'<li class="msglib_li">'+
							'<div class="msghead">'+usr.getaother(uid,ms[i].fromid,ty).name+'&nbsp;&nbsp;'+cn[k].time.split(',')[1]+'</div>'+
							'<div class="msgcnt">'+cn[k].content+'</div></li>';
						}
						cmcnt=
						'<div class="msglib_detail_tab" senderid="'+ty+'_'+ms[i].fromid+'">'+
						'<div class="msglib_detail_tool">'+
						'<div class="msglib_detail_tool_title msglib_open"><div class="msglib_openimg"></div>打开</div>'+
						'<div class="msglib_detail_tool_title msglib_reply"><div class="msglib_replyimg"></div>回复</div>'+
						'<div class="msglib_detail_tool_title msglib_ignore"><div class="msglib_ignoreimg"></div>忽略</div>'+
						'<div class="clear"></div></div>'+
						'<div class="msglib_detail_frd"><div class="header">'+
						'<div class="headerimg"><img src="'+usr.getaother(uid,ms[i].fromid,ty).img+'"/><div class="ol_type"></div></div></div>'+
						'<div class="namer"><div class="fname">'+usr.getaother(uid,ms[i].fromid,ty).name+'('+usr.getaother(uid,ms[i].fromid,ty).account+')</div>'+
						'<div class="sign">'+(ty=="frd"?usr.getaother(uid,ms[i].fromid,ty).sign:'')+'</div></div></div>'+
						'<div class="msglib_detail_list"><div class="msglib_detail_listcnt">'+
						'<ul class="msglib_detail_listpage">'+
						msgcnt+
						'</ul></div></div></div>';
					}


				}
				else
				{
					//累计消息数
					//sysl+=cn.length;
					//以后再做
				}
			}


			
			if(frdul!='<ul class="msglib_frd"><li class="msglib_list_head">好友会话</li>')
			{
				cmlis+=frdul+'</ul>';
			}
			if(disul!='<ul class="msglib_dis"><li class="msglib_list_head">讨论组会话</li>')
			{
				cmlis+=disul+'</ul>';
			}
			if(grpul!='<ul class="msglib_grp"><li class="msglib_list_head">群会话</li>')
			{
				cmlis+=grpul+'</ul>';
			}




		}
		var uset=usr.getpro(uid,'setting');
		$('body').append(
		'<div class="msglib_board owner_'+uid+'" id="msglib_board_'+uid+'">'+
		'<!--总内容页--->'+
		'<div class="msglib_cntboard">'+
		'<!--顶bar-->'+
		'<div class="msglib_bar">'+
		'<div class="bar_color theme_color_'+uid+' theme_op_'+uid+'"></div>'+
		'<div class="bar_content">'+
		'<div class="msglib_barname"><img src="img/informationbox/messagebox16.ico"/><span class="username_all">'+usr.getuser(uid).name+'</span>&nbsp;-&nbsp;消息盒子</div>'+
		'<div class="msglib_close" title="关闭"></div>'+
		'<div class="msglib_max" title="最大化"></div>'+
		'<div class="msglib_mini" title="最小化"></div>'+
		'<div class="clear"></div>'+
		'</div></div>'+
		'<!----翻页按钮-->'+
		'<div class="msglib_title">'+
		'<div class="msglib_title_tag msglib_title_resent selected">最近'+(cml>0?'('+cml+')':'')+'</div>'+
		'<div class="msglib_title_tag msglib_title_sys">通知'+(sysl>0?'('+sysl+')':'')+'</div>'+

		'<div class="msglib_smartget"><div class="ck'+(parseInt(uset['msgbox_smartget'])==1?' checked':'')+'"></div>智能提取</div>'+
		'<div class="msglib_set">'+
		'<img class="setinfo" src="img/informationbox/MsgboxSetInfo.png"/>'+
		'<ul class="msglib_setboard">'+
		'<li class="viewset">预览显示<img src="img/Menu/menu_arrow.png"/>'+
		'<div class="clear"></div>'+
		'<ul>'+
		'<li class="showfirst"><div class="ck'+(parseInt(uset['msgbox_showfirst'])==1?' checked':'')+'"></div>默认显示第一条</li>'+
		'<li class="showlast"><div class="ck'+(parseInt(uset['msgbox_showfirst'])==0?' checked':'')+'"></div>默认显示最后一条</li>'+
		'</ul>'+
		'</li>'+
		'<li class="delnclose"><div class="ck'+(parseInt(uset['msgbox_delnclose'])==1?' checked':'')+'"></div>清空消息时关闭</li>'+
		'<li class="delnnoremind"><div class="ck'+(parseInt(uset['msgbox_delnnoremind'])==1?' checked':'')+'"></div>删除请求消息时不再提醒</li>'+
		'<li class="showallgrp"><div class="ck'+(parseInt(uset['msgbox_showallgrp'])==1?' checked':'')+'"></div>显示不关注的群</li>'+
		'<li class="fastset">设置快捷键...</li>'+
		'</ul>'+
		'</div>'+
		'<div class="clear"></div>'+

		'</div>'+
		'<!--切换页-->'+
		'<div class="msglib_content">'+
		'<!--切换内容板(普通消息)--->'+
		'<div class="msglib_content_board msglib_content_resent show">'+
		'<!--切换页工具栏-->'+
		'<div class="msglib_toolbar">'+
		'<div class="msglib_toolbar_title msglib_openall"><div class="msglib_openimg"></div>打开全部</div>'+
		'<div class="msglib_toolbar_title msglib_ignoreall"><div class="msglib_ignoreimg"></div>忽略全部</div>'+
		'</div>'+
		'<!---好友消息列表页--->'+
		'<div class="msglib_list_board">'+
		'<!--好友列表框-->'+
		'<div class="msglib_list"><!--board--->'+
		'<div class="msglib_list_cnt"><!---cnt--->'+
		cmlis+
		'</div>'+
		'</div>'+
		'<!--好友消息框-->'+
		'<div class="msglib_detail">'+
		cmcnt+
		'</div><!--好友消息框-->'+
	
		'</div><!---好友消息列表页--->'+
		'<div class="clear"></div>'+
		(cml<=0?'<div class="whiteboard">暂时没有未读消息</div><!--无消息时显示的蒙版--->':'')+
		'</div><!--切换内容板(普通消息)--->'+
		'<!---------------------------------------------------------------------------------------------------------------------------------------->'+
		'<!--切换内容板(系统通知)--->'+
		'<div class="msglib_content_board msglib_content_sys">'+
		'<!--切换页工具栏-->'+
		'<div class="msglib_toolbar">'+
		'<div class="msglib_toolbar_title msglib_openall"><div class="msglib_openimg"></div>打开全部</div>'+
		'<div class="msglib_toolbar_title msglib_ignoreall"><div class="msglib_ignoreimg"></div>忽略全部</div>'+
		'</div>'+
		'<!---通知消息列表页--->'+
		'<div class="msglib_list_board">'+
		'<!--通知列表框-->'+
		'<div class="msglib_list"><!--board--->'+
		'<div class="msglib_list_cnt"><!---cnt--->'+
		'<ul class="msglib_sys"><!---page--->'+
		syslis+
		/*
		'<li class="msglib_list_who selected" sid="">'+
		'<div class="header"><div class="headimg"></div></div>'+
		'<div class="cnter">'+
		'<div class="namer">'+
		'<div class="lasttime">14:54</div>'+
		'<div class="count">1256条</div>'+
		'<div class="fname">添加好友消息</div>'+
		'</div>'+
		'<div class="newst">XXX添加您为好友</div>'+
		'</div>'+
		'</li>'+
		*/
		'</ul>'+
		'</div>'+
		'</div>'+
		'<!--系统消息框-->'+
		'<div class="msglib_detail">'+
		syscnt+
		/*
		'<div class="msglib_detail_tab" sid="">'+
		'<div class="msglib_detail_tool">'+
		'<div class="msglib_detail_tool_title msglib_open"><div class="msglib_openimg"></div>打开</div>'+
		'<div class="msglib_detail_tool_title msglib_ignore"><div class="msglib_ignoreimg"></div>忽略</div>'+
		'<div class="clear"></div>'+
		'</div>'+
		'<div class="msglib_detail_frd">'+
		'<div class="header">'+
		'<div class="headerimg">'+
		'<img src=""/>'+
		'<div class="ol_type"></div>'+
		'</div>'+
		'</div>'+
		'<div class="namer">'+
		'<div class="fname">添加好友</div>'+
		'<div class="sign"></div>'+
		'</div>'+
		'</div>'+
		'<div class="msglib_detail_list">'+
		'<div class="msglib_detail_listcnt">'+
		'<ul class="msglib_detail_listpage">'+
		'<li class="msglib_li selected">'+
		'<div class="msghead">系统消息&nbsp;&nbsp;14:54:12</div>'+
		'<div class="msgcnt">XXX添加您为好友</div>'+
		'</li>'+
		'</ul>'+
		'</div>'+
		'</div>'+
		'</div>'+
		*/
		'</div><!--系统消息框-->'+
		'</div><!---系统消息列表页--->'+
		'<div class="clear"></div>'+
		(sysl<=0?'<div class="whiteboard">暂时没有未读消息</div><!--无消息时显示的蒙版--->':'')+
		'</div><!--切换内容板(系统通知)--->'+
		'</div><!--切换页-->'+
		'</div><!--总内容页--->'+
		'</div>'
		);
		var winY=window.innerHeight||document.body.clientHeight;
		var winX=window.innerWidth||document.body.clientWidth;
		winY=((winY-508)/2)-50;
		winY=winY<=0?10:winY;
		winX=(winX-680)/2;
		$('#msglib_board_'+uid).css('top',winY+'px').css('left',winX+'px');

		//设置顶部bar色
		var th=usr.getpro(uid,'theme');
		$('#msglib_board_'+uid+' .theme_color_'+uid).css('background',th['bgcolor']);
		$('#msglib_board_'+uid+' .theme_op_'+uid).css("filter","alpha(opacity="+th['skinopacity']+")").css("-moz-opacity",(th['skinopacity']/100)).css("opacity",(th['skinopacity']/100));

	}


	var _bind=function()
	{
		drag($('.msglib_board'));
		
		$('.msglib_board').click(function(e)
		{
			
			if($(e.target).attr('class')!='msglib_set')
			{
				$(this).find('.msglib_setboard').css('display','none');
			}

			e.stopImmediatePropagation();
		});

		
		$('.msglib_close').click(function()
		{
			$(this).parents('.msglib_board').remove();
		});
		$('.msglib_mini').click(function()
		{
			$(this).parents('.msglib_board').css('display','none');
		});
		$('.msglib_max').click(function()
		{
			var winY=window.innerHeight||document.body.clientHeight;
			var y=winY-32;
			console.log(y);
			$(this).parents('.msglib_board').css('width','100%').css('height',y+'px').css('top','0').css('left','0');
			$(this).attr('class','msglib_restore');
			bind();
		});
		$('.msglib_restore').click(function()
		{
			var winY=window.innerHeight||document.body.clientHeight;
			var winX=window.innerWidth||document.body.clientWidth;
			winY=((winY-508)/2)-50;
			winX=(winX-680)/2;
			$(this).parents('.msglib_board').css('width','680px').css('height','508px').css('top',winY+'px').css('left',winX+'px');
			$(this).attr('class','msglib_max');
			bind();
		});
		

		//切换页
		$('.msglib_title_tag').click(function(e)
		{
			if($(this).hasClass('seleced'))
			{
				return;
			}

			if($(this).hasClass('msglib_title_resent'))
			{
				$(this).parent('.msglib_title').siblings('.msglib_content').find('.msglib_content_resent').addClass('show');
				$(this).parent('.msglib_title').siblings('.msglib_content').find('.msglib_content_sys').removeClass('show');
			}
			else
			{
				$(this).parent('.msglib_title').siblings('.msglib_content').find('.msglib_content_resent').removeClass('show');
				$(this).parent('.msglib_title').siblings('.msglib_content').find('.msglib_content_sys').addClass('show');
			}
			$(this).addClass('selected');
			$(this).siblings('.msglib_title_tag').removeClass('selected');
			e.stopImmediatePropagation();
		});
		

		msgcenter.msglibbind();

		//智能提取点选
		$('.msglib_smartget').click(function(e)
		{
			var ts=$(this);
			var uid=ts.parents('.msglib_board').attr('id').replace('msglib_board_','');
			if(ts.find('.ck').hasClass('checked'))
			{
				ajaxset(uid,'msgbox_smartget','0',function()
				{
					ts.find('.ck').removeClass('checked');
				});
			}
			else
			{
				ajaxset(uid,'msgbox_smartget','1',function()
				{
					ts.find('.ck').addClass('checked');
				});
			}
			e.stopImmediatePropagation();
		});
		
		//点击设置打开设置列表
		$('.msglib_set').click(function(e)
		{
			$(this).find('.msglib_setboard').css('display','block');
			e.stopImmediatePropagation();
		});

		$('.msglib_setboard').click(function(e)
		{
			var uid=$(this).parents('.msglib_board').attr('id').replace('msglib_board_','');
			var t=$(e.target);
			var cls=t.attr('class');
			
			if(cls=="showfirst")
			{
				if(t.find('.ck').hasClass('checked'))
				{
					$(this).css('display','none');
					return;
				}
				else
				{
					ajaxset(uid,'msgbox_'+cls,1,function()
					{
						t.siblings('.showlast').find('.ck').removeClass('checked');
						t.find('.ck').addClass('checked');
					});
				}
			}else if(cls=="showlast")
			{
				if(t.find('.ck').hasClass('checked'))
				{
					$(this).css('display','none');
					return;
				}
				else
				{
					ajaxset(uid,'msgbox_showfirst',0,function()
					{
						t.siblings('.showfirst').find('.ck').removeClass('checked');
						t.find('.ck').addClass('checked');
					});
				}
				
			}else if(cls=="delnclose")
			{
				if(t.find('.ck').hasClass('checked'))
				{
					ajaxset(uid,'msgbox_'+cls,0,function()
					{
						t.find('.ck').removeClass('checked');
					});
				}
				else
				{
					ajaxset(uid,'msgbox_'+cls,1,function()
					{
						t.find('.ck').addClass('checked');
					});
				}
			}else if(cls=="delnnoremind")
			{
				if(t.find('.ck').hasClass('checked'))
				{
					ajaxset(uid,'msgbox_'+cls,0,function()
					{
						t.find('.ck').removeClass('checked');
					});
				}
				else
				{
					ajaxset(uid,'msgbox_'+cls,1,function()
					{
						t.find('.ck').addClass('checked');
					});
				}
			}else if(cls=="showallgrp")
			{
				if(t.find('.ck').hasClass('checked'))
				{
					ajaxset(uid,'msgbox_'+cls,0,function()
					{
						t.find('.ck').removeClass('checked');
					});
				}
				else
				{
					ajaxset(uid,'msgbox_'+cls,1,function()
					{
						t.find('.ck').addClass('checked');
					});
				}
			}
			else if(cls=="fastset")
			{
				$(this).css('display','none');
				if($("#setting_boardjs").length<=0)
				{
					$('body').append('<script id="setting_boardjs" type="text/javascript" src="js/setting_board.js"></script>');
				}
				new setting_board().init(uid);
			}
			
			
			$(this).css('display','none');
			e.stopImmediatePropagation();
		});
	}
	

	function ajaxset(uid,setname,setval,callback)
	{
		$.ajax({
			url:'action/userconfig.php',
			data:'u='+uid+'&&t=set&&m=one&&n='+setname+'&&v='+setval,
			method:'POST',
			success:function(m)
			{
				if(m=='ok')
				{
					//设置到全局数组中
					usr.setpro(uid,'setting',setname,setval);
					callback();
					console.log(uid+','+setname+'='+setval+' set ok');
				}
				else
				{
					console.log(uid+','+setname+'='+setval+' unknow err,cannot set from msglib box');
				}
			},
			error:function()
			{
				console.log(uid+','+setname+'='+setval+' network err,cannot set from msglib box');
			}
		});
	}
	

	var bind=function()
	{

		$('.msglib_max').click(function()
		{
			var winY=window.innerHeight||document.body.clientHeight;
			var y=winY-32;
			console.log(y);
			$(this).parents('.msglib_board').css('width','100%').css('height',y+'px').css('top','0').css('left','0');
			$(this).attr('class','msglib_restore');
			bind();
		});
		$('.msglib_restore').click(function()
		{
			var winY=window.innerHeight||document.body.clientHeight;
			var winX=window.innerWidth||document.body.clientWidth;
			winY=((winY-508)/2)-50;
			winX=(winX-680)/2;
			$(this).parents('.msglib_board').css('width','680px').css('height','508px').css('top',winY+'px').css('left',winX+'px');
			$(this).attr('class','msglib_max');
			bind();
		});
	}



}